package cn.iocoder.yudao.module.cms.appversion.service;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.cms.appversion.dal.dataobject.AppVersionDO;
import cn.iocoder.yudao.module.cms.appversion.vo.AppVersionPageReqVO;
import cn.iocoder.yudao.module.cms.appversion.vo.AppVersionSaveReqVO;
import jakarta.validation.Valid;

/**
 * 版本更新 Service 实现类
 *
 * @author 山野羡民（1032694760@qq.com）
 */
public interface AppVersionService {

    /**
     * 创建版本更新
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createAppVersion(@Valid AppVersionSaveReqVO createReqVO);

    /**
     * 更新版本更新
     *
     * @param updateReqVO 更新信息
     */
    void updateAppVersion(@Valid AppVersionSaveReqVO updateReqVO);

    /**
     * 删除版本更新
     *
     * @param id 编号
     */
    void deleteAppVersion(Long id);

    /**
     * 获得版本更新
     *
     * @param id 编号
     * @return 版本更新
     */
    AppVersionDO getAppVersion(Long id);

    /**
     * 获得版本更新分页
     *
     * @param pageReqVO 分页查询
     * @return 版本更新分页
     */
    PageResult<AppVersionDO> getAppVersionPage(AppVersionPageReqVO pageReqVO);

    /**
     * 获得最新的 版本更新
     *
     * @param type 类型
     * @return 版本更新分页
     */
    AppVersionDO getLatestAppVersion(Integer type);

}
